/**
 * All Rights Reserved , Copyright (C) 2020 , 青岛鼎信通讯股份有限公司
 * IBasePermissionManageService
 * 基础权限管理
 * 修改纪录
 * 2020-10-26 版本：1.0 maxiaodong 创建。
 *
 * @version 版本：1.0
 * @author 作者：maxiaodong
 * 创建日期：2020-10-26
 */
package com.topscomm.base.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.topscomm.base.IBaseService;
import com.topscomm.base.dao.IBasePermissionManageDao;
import com.topscomm.base.pojo.BasePermissionManageEntity;
import com.topscomm.tap.common.SessionUserBean;

public interface IBasePermissionManageService
		extends IBaseService<BasePermissionManageEntity, IBasePermissionManageDao> {
	/**
	 * @description:批量保存消息提醒配置
	 * @param sourceId
	 * @param sourceType
	 * @param list
	 * @author: zhanglongfei
	 * @date: 2020年10月29日下午3:05:37
	 * @modify:
	 */
	void batchSaveList(String sourceId, String sourceType, List<BasePermissionManageEntity> list);

	/**
	 * @description: 处理数据
	 * @param users
	 * @param sourceUserCodes
	 * @param sourceUserNames
	 * @return
	 * @author: donghang
	 * @date: 2020年11月3日下午12:39:33
	 * @modify:
	 */
	List<BasePermissionManageEntity> processSelectUsers(Map<String, Object> users, String sourceFlag,
			String sourceUserCodes, String sourceUserNames);

	/**
	 * @description: 得到全部的参会人员
	 * @param selectUsers
	 * @return
	 * @author: wanghongwei
	 * @date: 2020-11-3 20:09:58
	 * @modify:
	 */
	List<Map<String, Object>> getAllAttendUser(Map<String, Object> selectUsers);

	/**
	 * @description: 得到所有的共享人
	 * @param paraMap
	 * @return
	 * @author: maxiaodong
	 * @date: 2020年11月10日上午9:07:27
	 * @modify:
	 */
	Set<String> findAllSharersByMap(Map<String, Object> paraMap);

	/**
	 *
	 * @description:
	 * @param sessionUserBean
	 * @param teamUserTimeValid:是否启用团队授权时间
	 * @return
	 * @author: donghang
	 * @date: 2020年11月20日下午7:30:34
	 * @modify:
	 */

	public String createUserShareCondition(SessionUserBean sessionUserBean, boolean teamUserTimeValid,
			String beginTimeFieldName);

	/**
	 * @description:将BasePermissionManage表的list转前台Map格式，支持多来源并去重
	 * @param list
	 * @return
	 * @author: chengengwei
	 * @date: 2021-2-24
	 * @modify:
	 */
	Map<String, Object> processToMapUsers(List<BasePermissionManageEntity> list);

	/**
	  *
	  * @author xinfushuo
	  * @param
	  * @throws
	  * @return
	  * @date 2022/12/26
	  * @modify
	  */
	List<Map<String,Object>> checkConflict(Set<String> sharers, List<Map<String, Object>> workScheduleMapList);

	/**
	 * @description: 构成共享类型与共享对象的map
	 * @author: maxiaodong
	 * @date: 2020年11月11日下午5:03:30
	 * @modify:
	 */
	void formShareMap(Map<String, Object> map, Map<String, Object> basePermissionManageMap);
}
